/**
 * Created by lenvov on 2017/1/13.
 */
import { Message } from 'element-ui';

const  API_ROOT ='';
/**
 * ajax封装
 * @param option
 * @returns {*}
 */
export default function (option) {
  /*处理请求数据*/
  if(option.data){
    option.data = handleData(option.data);
  }
  var _option= {
    type: "post",
    dataType: "json",
    /*contentType: "application/json;charset=UTF-8",*/
    error:function(XMLHttpRequest, textStatus, errorThrown){
      if(XMLHttpRequest.readyState == 4){
        Message.error('sorry,request error!');
      }
    }
  }
  $.extend(_option,option);
  _option.url = API_ROOT + _option.url;
  //重写success，如果传回的data.result值为true,才产生回调，供模块使用
  _option.success=function (data, textStatus, jqXHR) {
    if(data){
      data = handleData(data);
    }
    if(_option.dataType == "html"){
      data = JSON.parse(data);
    }
    //如果会话超时
    if(data.retCode == 104){
      handleTimeOut(data);
    }
    if(data.result == "false" && !option.isPassFalse) {
      Message.warning(data.resultDesc);
    }
    if(data.result == 'true'){
      typeof option.success == "function" && option.success(data, textStatus, jqXHR);
    }
  }
  return $.ajax(_option);
}

/**
 * 数据处理
 * @param data
 * @returns {*}
 */
function handleData(data){
  if(!data){
    return data;
  }
  var type = typeof data;
  var newData = type == 'string'? data : JSON.stringify(data);
  newData = newData.replace(/<script/igm,"&lt;script").replace(/<\/script>/igm,"&lt;/script&gt;");
  //其他...
  return type == 'string' ? newData : JSON.parse(newData);
}
/**
 * 超时处理
 * @param data
 */
function handleTimeOut(data) {
  //...
}

